BabylonJS-এ ক্যামেরা ব্যবহারের দুটি প্রধান পদ্ধতি হলো ArcRotateCamera এবং FreeCamera। এই দুটি ক্যামেরা ব্যবহার করে আপনি 3D দৃশ্যের মধ্যে কিভাবে মুভ করবেন, সেটি নিয়ন্ত্রণ করতে পারেন। এখানে আমরা এই দুটি ক্যামেরার মৌলিক মুভমেন্টের পদ্ধতি সম্পর্কে আলোচনা করব।
ArcRotateCamera
ArcRotateCamera একটি বিশেষ ধরনের ক্যামেরা যা 3D দৃশ্যের চারপাশে ঘুরে দেখানোর জন্য ব্যবহৃত হয়। এটি মূলত একটি "অর্ক" বা বৃত্তাকার গতিতে কাজ করে, যেখানে ক্যামেরা একটি নির্দিষ্ট পয়েন্টের চারপাশে ঘুরতে থাকে। এর মাধ্যমে ব্যবহারকারী খুব সহজে 3D দৃশ্যের মধ্যে অবজেক্ট বা বস্তুর চারপাশে ঘুরে দেখতে পারেন।
ArcRotateCamera সেটআপ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ArcRotateCamera Example</title>
<script src="https://cdn.babylonjs.com/babylon.js"></script>
</head>
<body>
<canvas id="renderCanvas" style="width: 100%; height: 100%"></canvas>
<script>
var canvas = document.getElementById("renderCanvas");
var engine = new BABYLON.Engine(canvas, true);
var scene = new BABYLON.Scene(engine);
// ArcRotateCamera তৈরি করা
var camera = new BABYLON.ArcRotateCamera("camera1", Math.PI / 2, Math.PI / 2, 10, BABYLON.Vector3.Zero(), scene);
camera.attachControl(canvas, true); // ক্যামেরা কন্ট্রোল যুক্ত করা
// আলোর উৎস তৈরি করা
var light = new BABYLON.HemisphericLight("light1", BABYLON.Vector3.Up(), scene);
// একটি বক্স তৈরি করা
var box = BABYLON.MeshBuilder.CreateBox("box", {size: 2}, scene);
// দৃশ্য রেন্ডার করা
engine.runRenderLoop(function () {
scene.render();
});
window.addEventListener("resize", function () {
engine.resize();
});
</script>
</body>
</html>
কোডের ব্যাখ্যা:
- ArcRotateCamera: এখানে ক্যামেরাটি
ArcRotateCameraটাইপের। এটি নির্দিষ্ট একটি পয়েন্ট (এখানেBABYLON.Vector3.Zero()—অর্থাৎ (0,0,0)) এর চারপাশে ঘুরে চলবে। ক্যামেরার অবস্থান কোণ এবং দূরত্ব (angle and radius) দিয়ে কনফিগার করা হয়েছে। - attachControl: এটি ক্যামেরা কন্ট্রোল যুক্ত করে, যা মাউস বা টাচ ইন্টারফেসের মাধ্যমে ক্যামেরার পজিশন পরিবর্তন করতে দেয়।
এই ক্যামেরা মুভমেন্টের মাধ্যমে, ব্যবহারকারী মাউস দিয়ে 3D দৃশ্যের মধ্যে ক্যামেরাকে ঘুরিয়ে দেখতে পারবেন।
FreeCamera
FreeCamera একটি ফ্রি-মুভিং ক্যামেরা যা আপনার নির্দেশে 3D দৃশ্যে যেকোনো জায়গায় যেতে পারে। এটি একটি "মুক্ত" ক্যামেরা, যার কোনো নির্দিষ্ট পয়েন্টের চারপাশে ঘুরতে বাধ্য নয়। আপনি ওয়াকিং বা ফ্লাইং মুভমেন্টের মতো এই ক্যামেরাকে নিয়ন্ত্রণ করতে পারেন।
FreeCamera সেটআপ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FreeCamera Example</title>
<script src="https://cdn.babylonjs.com/babylon.js"></script>
</head>
<body>
<canvas id="renderCanvas" style="width: 100%; height: 100%"></canvas>
<script>
var canvas = document.getElementById("renderCanvas");
var engine = new BABYLON.Engine(canvas, true);
var scene = new BABYLON.Scene(engine);
// FreeCamera তৈরি করা
var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -10), scene);
camera.attachControl(canvas, true); // ক্যামেরা কন্ট্রোল যুক্ত করা
// আলোর উৎস তৈরি করা
var light = new BABYLON.HemisphericLight("light1", BABYLON.Vector3.Up(), scene);
// একটি বক্স তৈরি করা
var box = BABYLON.MeshBuilder.CreateBox("box", {size: 2}, scene);
// দৃশ্য রেন্ডার করা
engine.runRenderLoop(function () {
scene.render();
});
window.addEventListener("resize", function () {
engine.resize();
});
</script>
</body>
</html>
কোডের ব্যাখ্যা:
- FreeCamera: এখানে ক্যামেরাটি
FreeCameraটাইপের, যা সোজা একটি নির্দিষ্ট পয়েন্ট থেকে (0, 5, -10) থেকে শুরু হয়। এটি 3D দৃশ্যে যেকোনো জায়গায় যেতে পারে। - attachControl: এই ক্যামেরার কন্ট্রোলও
attachControlমেথডের মাধ্যমে যুক্ত করা হয়েছে, যা ব্যবহারকারীকে কিবোর্ড এবং মাউস দিয়ে ক্যামেরার পজিশন নিয়ন্ত্রণ করতে সহায়তা করবে।
FreeCamera দিয়ে আপনি ওয়াকিং বা ফ্লাইং স্টাইলে 3D দৃশ্যে মুভ করতে পারবেন, যা গেম ডেভেলপমেন্টে বেশ উপকারী।
ArcRotateCamera vs FreeCamera
| বৈশিষ্ট্য | ArcRotateCamera | FreeCamera |
|---|---|---|
| মুভমেন্ট | নির্দিষ্ট একটি পয়েন্টের চারপাশে ঘুরে মুভ করে | যেকোনো স্থানে যেতে পারে, যেমন ওয়াকিং বা ফ্লাইং |
| ব্যবহার | সাধারণত অবজেক্ট বা দৃশ্যের চারপাশে ঘুরে দেখানোর জন্য | পুরো দৃশ্যে স্বাধীনভাবে মুভ করার জন্য |
| কন্ট্রোল | মাউস বা টাচ দিয়ে ক্যামেরা ঘোরানো যায় | কিবোর্ড বা মাউস দিয়ে ক্যামেরা গতিশীল করা যায় |
| উদাহরণ | 3D মডেল বা দৃশ্য ঘুরিয়ে দেখা | গেম বা নেভিগেশন সিস্টেমে ব্যবহৃত |
সারাংশ
- ArcRotateCamera: 3D দৃশ্যের চারপাশে ঘুরে দেখানোর জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট পয়েন্টের চারপাশে ক্যামেরা ঘুরাতে দেয়।
- FreeCamera: এটি একটি ফ্রি-মুভিং ক্যামেরা, যা ব্যবহারকারীর নিয়ন্ত্রণে 3D দৃশ্যে যেকোনো স্থানে যেতে পারে।
এই দুটি ক্যামেরা মুভমেন্ট আপনার 3D প্রজেক্টের ভিউ নিয়ন্ত্রণ করতে সাহায্য করবে।